/**=============================================================================
@file
   hvx_fft_common.h

@brief
   Header file for common stuff for HVX FFT code.

Copyright (c) 2020 Qualcomm Technologies Incorporated.
All Rights Reserved. Qualcomm Proprietary and Confidential.
=============================================================================**/

#ifndef _HVX_FFT_COMMON_H
#define _HVX_FFT_COMMON_H

#ifdef __cplusplus
extern "C" {
#endif

#include "qhcomplex.h"
#include "qhl_types.h"
#include <hexagon_cache.h>

#define L2FETCH(ADDR, REG)   asm("  l2fetch(%0, %1)\n"  :: "r" (ADDR), "r" (REG)    );

typedef uint8_t __attribute__((aligned(128))) uint8_a128_t;
typedef int16_t __attribute__((aligned(128))) int16_a128_t;
typedef int64_t __attribute__((aligned(128))) int64_a128_t;
typedef float complex __attribute__((aligned(128))) cfloat_a128_t;
typedef float __attribute__((aligned(128))) float_a128_t;
typedef __fp16 __attribute__((aligned(128))) __fp16_a128_t;
typedef qhl_cfloat16_t __attribute__((aligned(128))) qhl_cfloat16_a128_t;

#ifdef __cplusplus
}
#endif

#endif /* _HVX_FFT_COMMON_H */
